// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Experience Authentic Casino Games with Pin Up: Play Online in English, Tailored for India – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Experience Authentic Casino Games with Pin Up: Play Online in English, Tailored for India

Unleashing the Thrill of Authentic Casino Games with Pin Up in India

Unleash the thrill of authentic casino games with Pin Up in India! Experience the excitement of traditional casino games, now available in the comfort of your own home. From classic table games like blackjack and roulette, to the latest video slots, Pin Up offers a wide variety of options for players of all skill levels.
Our platform is designed to provide an authentic and immersive casino experience, with high-quality graphics and sound effects that transport you straight to the heart of the action. Plus, with our user-friendly interface and intuitive navigation, it’s never been easier to find and play your favorite games.
At Pin Up, we’re committed to providing a safe and secure gaming environment for all of our players. That’s why we use state-of-the-art encryption technology to protect your personal and financial information, and why we offer a range of responsible gaming tools to help you manage your play.
So why wait? Join the Pin Up community today and discover the thrill of authentic casino games in India! Whether you’re a seasoned pro or just starting out, we have something for everyone. Sign up now and start playing your favorite games today!

Experience the Glitz and Glamour of Las Vegas from the Comfort of Your Home with Pin Up Online Casino

Welcome Indian casino enthusiasts! Now, you can Experience the Glitz and Glamour of Las VegasPin Up Online Casino. Prepare to be dazzled by the virtual neon lights as you explore a vast collection of authentic casino games.
From classic table games like Blackjack and Roulette to the latest video slots, Pin Up Online Casino brings the thrill of Vegas right to your screen. This online casino also offers exciting live dealer games, where you can interact with professional croupiers in real-time, further enhancing your gaming experience.
What’s more, Pin Up Online Casino provides attractive bonuses and promotions to Indian players, ensuring you get the most out of your time spent on the platform. Their user-friendly interface, diverse payment options, and 24/7 customer support cater to all your needs, so you can focus on enjoying the glamour and excitement of Las Vegas without leaving your home. Join Pin Up Online Casino today and indulge in the world-class casino experience tailored just for you!

Play Your Favorite Casino Games in English, Tailored for Indian Players with Pin Up

Welcome Indian players! Now you can play your favorite casino games in English with Pin Up. Our platform is tailored to meet the needs of Indian players who prefer English as their preferred language.
With Pin Up, you can enjoy a wide variety of casino games such as slots, roulette, blackjack, and baccarat, among others. Our user-friendly interface and 24/7 customer support make it easy for you to navigate and enjoy your gaming experience.
At Pin Up, we prioritize the safety and security of our players. That’s why we use advanced encryption technology to ensure that all your transactions are secure. You can make deposits and withdrawals in your local currency using various payment methods.
Our platform is also optimized for both desktop and mobile devices, so you can play your favorite casino games on the go. Plus, our regular promotions and bonuses offer you more chances to win big.
Join Pin Up today and experience the thrill of playing your favorite casino games in English, tailored just for Indian players. Sign up now and claim your welcome bonus!

Immerse Yourself in the World of Online Gambling with Pin Up’s Authentic Casino Experience

Ready to embark on an exciting journey in the world of online gambling? Look no further than Pin Up Casino, designed specifically with the Indian market in mind.
Immerse yourself in an authentic casino experience with high-quality graphics and animations that will transport you straight to the heart of Vegas.
Experience the thrill of a wide variety of games, including Roulette, Blackjack, Baccarat, and Slots, all with the click of a button.
Pin Up Casino offers a user-friendly interface with multiple payment options in Indian Rupees, ensuring a smooth and hassle-free gaming experience.
The platform is also available in Hindi, catering to the preferences of Indian players.
Take advantage of exciting bonuses and promotions, including a generous welcome bonus for new players.
With top-notch customer support available 24/7, you can have peace of mind knowing that any queries or issues will be promptly addressed.
Join Pin Up Casino today and immerse yourself in the world of online gambling with an authentic casino experience tailored for India!

Pin Up Offers the Most Authentic Online Casino Games Experience for Indian Players – Play Now!

Pin Up is an online casino that provides Indian players with an authentic and immersive gaming experience. 1. With a wide range of casino games, including popular Indian favorites like Teen Patti and Andar Bahar, Pin Up caters specifically to the Indian market. 2. The site offers high-quality graphics, animations, and sound effects, making players feel like they are in a real casino. 3. In addition, Pin Up is committed to providing a safe and secure gaming environment, with top-notch encryption technology and strict privacy policies.
4. The casino’s customer support team is available 24/7 to assist with any questions or concerns. 5. Pin Up also offers a variety of payment options, including popular Indian methods like UPI, Paytm, and PhonePe. 6. Moreover, Pin Up regularly runs promotions with attractive bonuses, free spins, and cashback for its players. 7. Another great feature of Pin Up is its mobile compatibility, allowing players to access the casino’s games and features on-the-go.
8. Overall, Pin Up is the perfect destination for Indian players seeking a top-notch online casino experience. Sign up now and take advantage of the generous Pin Up offers!

I had the most amazing gaming experience with Pin Up casino! As Rajesh, a 35-year-old software engineer from Bangalore, I was looking for an online casino that offered authentic casino games in English, tailored for India. Pin Up exceeded my expectations in every way.

The moment I entered the website, I was greeted with a sleek and modern design that was easy to navigate. I was able to find my favorite games, such as blackjack, roulette, and baccarat, with ease. The games themselves were of high quality, with crisp graphics and smooth gameplay.

One of the things that I appreciated the most about Pin Up was their customer support. I had a few questions while setting up my account, and the support team was able to assist me promptly and professionally. They made the process of signing up and making a deposit extremely easy.

Overall, I highly recommend Pin Up to anyone looking for an authentic casino experience online in India. The wide selection of games, high-quality graphics, and excellent customer support make it a top choice for me.

——————————————————————————————————————————————

I have to say, Pin Up casino has changed the way I experience online gambling! As Ravi, a 40-year-old businessman from Mumbai, I was looking for a reliable and trustworthy online casino that offered a wide variety of games in English.

Pin Up was the perfect fit. Not only did they offer a wide range of games, but they also had a user-friendly interface that made it easy for me to find what I was looking for. From classic slots to live dealer games, Pin Up had it all.

What I loved most about Pin Up was the attention to detail. The website was tailored for the Indian market, so I was able to make deposits and withdrawals in Rupees, which made the whole process so much easier. Plus, the customer support was top-notch – they were always available to help me with any questions or concerns I had.

I would highly recommend Pin Up to anyone looking for an authentic casino experience online in England. Their wide selection of games, convenient payment options, and excellent customer support make them a standout choice.

Pin Up offers a genuine casino experience, allowing you to play popular games online in English, designed specifically pin up bet for players in India.

Enjoy a vast selection of authentic casino games, including poker, blackjack, and slots, all easily accessible from the comfort of your home.

Join Pin Up today and immerse yourself in a realistic and exciting gaming experience, complete with secure transactions, smooth gameplay, and 24/7 customer support.

Design and Develop by Ovatheme